﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QuanLyThongTinNhanKhau.model.BO
{
    class HoKhauBO
    {
        model.DAO.HoKhauDAO hoKhauDAO = new DAO.HoKhauDAO();
        GUI.HoKhau f;

        public HoKhauBO(GUI.HoKhau hoKhau)
        {
            f = hoKhau;
        }

        internal void loadHoKhau()
        {
            DataTable dt = hoKhauDAO.loadTable();

            if (dt.Rows.Count != 0)
            {
                this.f.gridControlHoKhau.DataSource = dt;
            }
            else
            {
                this.f.gridControlHoKhau.DataSource = null;
            }
        }

        internal void btnTimKiem()
        {
            DataTable dt = hoKhauDAO.btnTimKiem(this.f.tbMaHoKhau.Text.Trim(),this.f.tbTenChuHo.Text.Trim());

            if (dt.Rows.Count != 0)
            {
                this.f.gridControlHoKhau.DataSource = dt;
            }
            else
            {
                this.f.gridControlHoKhau.DataSource = null;
            }
        }

        internal void generateMaHK()
        {
            //genarate MaHoKhau
            StringBuilder maHoKhau = new StringBuilder();
            Random random = new Random();

            do
            {
                maHoKhau.Clear();
                maHoKhau.Append("MaHK");
                for (int i = 0; i < 5; i++)
                {
                    maHoKhau.Append(random.Next(0, 9));
                }
            } while (hoKhauDAO.isValidHoKhau(maHoKhau.ToString()));

            this.f.tbNewMaHoKhau.Text = maHoKhau.ToString();
        }

        internal void btnLuu()
        {
            String maHoKhau = this.f.tbNewMaHoKhau.Text.Trim();
            String tenChuHo = this.f.tbNewTenChuHo.Text.Trim();
            String ngayCap = this.f.dateTimeNewNgayCap.Value.ToString("yyyy-MM-dd");


            //if Update
            if (hoKhauDAO.isValidHoKhau(maHoKhau))
            {
                if ("".Equals(tenChuHo))
                {
                    System.Windows.Forms.MessageBox.Show("Vui lòng điền Họ và Tên chủ hộ");
                }
                else
                {
                    if (hoKhauDAO.updateSoHoKhau(maHoKhau, tenChuHo, ngayCap))
                    {
                        System.Windows.Forms.MessageBox.Show("Cập nhật thành công");
                        loadHoKhau();
                    }
                }
            }
            else //if New
            {
                if ("".Equals(tenChuHo))
                {
                    System.Windows.Forms.MessageBox.Show("Vui lòng điền Họ và Tên chủ hộ");
                }
                else
                {
                    if (hoKhauDAO.newSoHoKhau(maHoKhau,tenChuHo,ngayCap))
                    {
                        System.Windows.Forms.MessageBox.Show("Thêm mới thành công");
                        loadHoKhau();
                    }
                }
            }
        }

        internal void deleteHoKhau(string maHoKhau)
        {
            if (hoKhauDAO.deleteHoKhau(maHoKhau))
            {
                System.Windows.Forms.MessageBox.Show("Xóa thành công");
                loadHoKhau();
            }
        }

        internal void loadNhanKhau(string maHoKhau)
        {
            DataTable dt = hoKhauDAO.loadNhanKhau(maHoKhau);

            if (dt.Rows.Count != 0)
            {
                this.f.gridControlNhanKhau.DataSource = dt;
            }
            else
            {
                this.f.gridControlNhanKhau.DataSource = null;
            }
        }

        internal void deleteNhanKhau(string maHoKhau, string maNhanKhau)
        {
            if (hoKhauDAO.deleteNhanKhau(maHoKhau, maNhanKhau))
            {
                System.Windows.Forms.MessageBox.Show("Xóa thành công");
                loadNhanKhau(maHoKhau);
            }
        }
    }
}
